home *** CD-ROM | disk | FTP | other *** search
/ 8bitfiles.net/archives / archives.tar / archives / genie-commodore-file-library / CMDGeneral / DESOTO14.1.SDA / SMARTBOOT V1.3 (.txt) < prev    next >
Commodore BASIC  |  2019-04-13  |  3KB  |  122 lines

  1. 50 POKE53280,11:POKE53281,0:POKE646,15
  2. 95 REM SMARTBOOT V1.3
  3. 100 A$="PROGRAMNAME.....":REM TARGET PROGRAM
  4. 105 AA$="PROGRAM.TITLE"
  5. 110 RU$="RUN":REM OR "SYSXXXXX"
  6. 115 LD$=",1": REM "" FOR BASIC PROGRAMS
  7. 120 TD=8:REM PROGRAM DISK BECOMES DEVICE #
  8. 125 REM PRINTER CODES
  9. 130 PR=1:REM PRINTER SWITCH:1=ON/0=OFF
  10. 135 P(1)=0 :P(2)=0 :P(3)=0 :P(4)=0 :P(5)=0 :P(6)=0 :P(7)=0 :P(8)=0 :P(9)=0
  11. 140 JD=1:SR=0: REM JIFFY DOS?: SELF-RUN?
  12. 145 DF=0:REM DATA DISK?  1=YES/0=NO
  13. 150 DD=9:REM DATA DISK BECOMES DEVICE #
  14. 155 NF$="FILENAME........":REM IDENTIFIER FILE ON DATA DISK
  15. 160 FT$="P":REM FILE TYPE OF IDENTIFIER  (P,S,U,R)
  16. 165 SP=  0:REM HD PART # FOR SYSTEMINFO
  17. 170 REM LIST 180- FOR ADDITIONAL OPTIONSREM(null)
  18. 175 GOTO230
  19. 180 P1=1:REM OPTIONAL HD PARTITION NUMBER
  20. 185 PA$=":81PART.NAME.....":REM OR HD DIR PATH
  21. 190 REM: PRINT#15,"C[208]"+CHR$(P1):REM HD PART
  22. 195 REM: PRINT#15,"CD"+PA$:REM HD DIR PATH
  23. 200 REM: PRINT#15,"I":FORT=1TO700:NEXT:REM 81 ROOT
  24. 205 REM: PRINT#15,"/"+PA$:FORT=1TO700:NEXT:REM 81 PART
  25. 210 REM(null)
  26. 215 GOSUB615:IFEN>19THEN630
  27. 220 RETURN
  28. 225 :
  29. 230 RD=17:REM DEVICE# TO BEGIN TEMPORARY CONFIGURATION
  30. 235 SI$="SYSTEMINFO.SMR":REM FILE NAME FOR SYSTEM INFO
  31. 240 :
  32. 245 NF$=NF$+","+FT$+",R"
  33. 250 CM=1:REM CHECK DEVICE & IF HD
  34. 255 DN=PEEK(186):X$=""
  35. 260 OPEN15,DN,15:PRINT#15,"M-R"CHR$(160)CHR$(254)CHR$(6)
  36. 261 FORI=1TO6:GET#15,B$:X$=X$+B$:NEXT
  37. 262 IFX$="CMD HD"THENCM=1
  38. 263 IFX$="CMD RL"THENCM=2
  39. 265 :
  40. 270 IFCM=0THEN295
  41. 275 REM FIND HD PARTITION #
  42. 280 PRINT#15,"G-P":GET#15,I$:GET#15,I$:GET#15,I$:CLOSE15
  43. 285 PN=ASC(I$)
  44. 290 :
  45. 295 G=0:REM CHECK FOR GEOS
  46. 300 G$="":FORX=49158TO49166:G$=G$+CHR$(PEEK(X)):NEXT:IFG$="GEOS BOOT"THENG=1
  47. 305 FORX=49152TO49172:POKEX,0:NEXT
  48. 310 :
  49. 315 X=1:PRINT"[147]POLLING"
  50. 320 FORT=8TO29:IFT=14THEN335
  51. 325 :OPEN5,T,5:CLOSE5:IFST<>0THEN335
  52. 330 :D(X)=T:X=X+1
  53. 335 :NEXT:Z=X-1
  54. 340 :
  55. 345 PRINT"BUFFERING"
  56. 350 FORX=1TOZ
  57. 355 :OD=D(X):ND=(RD-1)+X:GOSUB530
  58. 360 :IF D(X)=DN THEN DV=ND:Y=X
  59. 365 :D$(X)=STR$(OD)+STR$(ND)
  60. 370 :D(X)=ND:NEXT
  61. 375 :
  62. 380 X=1:PRINT"CONFIGURING"
  63. 385 IF DF THENGOSUB550
  64. 390 OD=DV:ND=TD:GOSUB530
  65. 395 D$(Y)=STR$(DN)+STR$(ND):D(Y)=ND
  66. 400 :
  67. 405 FORT=1TOZ:D$(T)=MID$(D$(T),2,2)+RIGHT$(D$(T),2):NEXT
  68. 410 :
  69. 415 PRINT"SAVING"
  70. 420 OPEN15,TD,15:SI$=":"+SI$:IFCM=1 THEN SI$=STR$(SP)+SI$
  71. 425 GOSUB615:
  72. 430 PRINT#15,"S"+SI$:GOSUB615
  73. 435 OPEN5,TD,5,SI$+",S,W"
  74. 440 FORT=1TOZ
  75. 445 :PRINT#5,D$(T)
  76. 450 :NEXT:CR$=CHR$(13)
  77. 455 PRINT#5,STR$(-1)+CR$+STR$(G)+CR$+STR$(PN)+CR$
  78. 460 CLOSE5:GOSUB615
  79. 465 GOSUB615:GOSUB180:CLOSE15
  80. 470 :
  81. 475 IFPRTHENPRINT"PRINTER":GOSUB645
  82. 480 IFAA$="PROGRAM.TITLE"THEN495
  83. 485 PRINT"[147]              NOW LOADING"
  84. 490 PRINT:PRINT;:FORT=1TO((40-LEN(AA$))/2):PRINT" ";:NEXT:PRINTAA$
  85. 495 POKE251,PEEK(646):POKE646,PEEK(53281)
  86. 500 PRINT"LOAD"CHR$(34)A$CHR$(34)","+STR$(TD)+LD$+":"
  87. 505 PRINT:PRINT:PRINT:PRINT
  88. 510 PRINT"POKE646,"PEEK(251)":PRINT"CHR$(34)"[147]"RU$":"CHR$(34)
  89. 512 Z8=5:IFSRTHENZ8=2
  90. 513 IFJDTHEN @#TD
  91. 515 POKE631,19:POKE632,13:POKE633,13:POKE634,19:POKE635,13:POKE198,Z8:NEW
  92. 520 :
  93. 525 REM CHANGE DEV #
  94. 530 OPEN15,OD,15:PRINT#15,"M-W"CHR$(119)CHR$(0)CHR$(2)CHR$(ND+32)CHR$(ND+64)
  95. 535 CLOSE15:RETURN
  96. 540 :
  97. 545 REM FIND DATA DISK
  98. 550 F=0:HF=1:FORT=1TOZ
  99. 555 :OPEN15,D(T),15:OPEN5,D(T),5,NF$:GOSUB615:CLOSE5:CLOSE15
  100. 560 :IFAB THEN EN=0:GOTO570
  101. 565 :IFEN=0THENOD=D(T):ND=DD:GOSUB530:D$(T)=LEFT$(D$(T),3)+STR$(ND):D(T)=ND
  102. 570 :IFEN=0THENT=Z:F=1
  103. 575 :NEXT
  104. 580 IF F=1THENHF=0:RETURN
  105. 585 PRINT"INSERT DATA DISK, PRESS A KEY (_TO EXIT)":AB=0
  106. 590 GETIN$:IFIN$=""THEN590
  107. 595 IFIN$="_"THENAB=1:RETURN
  108. 600 GOTO550
  109. 605 :
  110. 610 REM ERROR CHANNEL
  111. 615 INPUT#15,EN$,EM$,ET$,ES$:EN=VAL(LEFT$(EN$,2))
  112. 620 IF EN<20 OR EN=62 OR HF=1 THEN RETURN
  113. 625 IF EN=31 THEN CM=0:RETURN
  114. 630 PRINT"ERROR "EN:PRINTEM$:PRINT"TRACK "ET;:PRINT" SECTOR "ES
  115. 635 CLOSE15:STOP:RETURN
  116. 640 :
  117. 645 REM PRINTER SETUP
  118. 650 OPEN 5,4,0:CLOSE5:IFST=0THEN665
  119. 655 PRINT"PRINTER OFFLINE"
  120. 660 POKE198,0:WAIT198,1
  121. 665 OPEN5,4:FORP=1TO9:PRINT#5,CHR$(P(P));:NEXT:CLOSE5:RETURN
  122.